package cn.bdqn.study_String;

//学习字符串类String
//String已经被别人写好，我们学习如何使用
public class TestString {
    public static void main(String[] args) {
        //创建String类的对象
        String str1 = "HelloWorld!";
        //null(表示空对象)和""(表示没有字符)
        //null在内存没有空间，""在内存中有空间
        String str2 = new String();//无参构造方法
        System.out.println(str2);
        //有参构造方法
        String str3 = new String("你好，世界！");

        //1、求已知字符串的长度（本质就是字符个数）
        //数组的长度：数学组名.length;
        int count1 = str1.length();
        System.out.println(str1 + "的字符个数是:" + count1);
        int count2 = str2.length();
        System.out.println(str2 + "的字符个数是:" + count2);
//        null调用String类的方法，语法不错，但执行过程中报
//        空指针异常（NullPointerException）
//        String str2_ = null;
//        System.out.println(str2_.length());
        int count3 = str3.length();
        System.out.println(str3 + "的字符个数是:" + count3);

        //字符串的比较
        String string1 = "Admin";
        String string2 = new String("admin");
        //==比较的是地址
        //equal比较的是内容
        System.out.println("==比较：" + string1 == string2);
        System.out.println("equals比较：" + string1.equals(string2));

        //不区分大小写比较字符串
        //ignore：忽略、忽视
        //case：单词，代码
        boolean b = string1.equalsIgnoreCase(string2);
        System.out.println("ignoreCase比较：" + b);

        //转换字符串中字母的大小写
        String ss = "aa你好44BB,Run";
        System.out.println("ss转大写后：" + ss.toUpperCase());
        System.out.println("ss转小写后：" + ss.toLowerCase());

        //字符串的拼接：常用+，
        // 字符串的concat方法：在指定字符串的末尾追加
        //注意concat产生新字符串，对旧字符串没有影响
        System.out.println("使用+号拼接字符串："+str1+"中国");
        String s1 = "aa";
        String s2 = "bb";
        String concat = s1.concat(s2);
        System.out.println("s1="+s1);
        System.out.println("s2="+s2);
        System.out.println("concat="+concat);

        //查找指定字符串中“字符”或“字符串”出现的位置
        String sss = "abcdefgfefgdcba";
        //字符串中字符出现的位置下标是从0开始的
        //参数是char类型
        int d = sss.indexOf('d');
        System.out.println("第一个d在sss的位置下标："+d);
        int d1 = sss.lastIndexOf('d');
        System.out.println("最后一个d在sss的位置下标："+d1);
        //参数是String类型
        System.out.println("第一个“efg”在sss的位置下标："+sss.indexOf("efg"));
        System.out.println("最后一个“efg”在sss的位置下标："+sss.lastIndexOf("efg"));
        //如果查找的字符或字符串在指定字符串中不存在，返回-1
        System.out.println("“我”在sss的位置下标："+sss.indexOf("我"));

        //字符串的提取
        String ssss = "我爱你中国！";
        //参数表示下标的值
        //一个参数时，表示提取从开始下标到字符串的结束
        String substring = ssss.substring(2);
        System.out.println("从2开始提取ssss后得到的值是："+substring);
        //二个参数时，表示提取从开始下标(包含)到结束下标（不包含）
        //包前不包后
        String substring1 = ssss.substring(1, 3);
        System.out.println("从1开始到3结束提取ssss后得到的值是："+substring1);


        //去除字符串两边的空格
        String s11 = "     ajdlafjdj         ";
        System.out.println("s11="+s11+"|");
        System.out.println("s11去除左右空格后="+s11.trim()+"|");



    }
}
